package com.example.auth.service;

import com.example.auth.dto.StudentDTO;
import com.example.auth.dto.StudentDetailDTO;
import com.example.auth.entity.User;
import java.util.List;
import java.util.Map;

public interface UserService {
    User register(String username, String password);
    User register(String username, String password, String realName, String nickname, String email, String phone);
    User findByUsername(String username);
    User findById(Long id);
    boolean validatePassword(User user, String password);
    void changePassword(User user, String currentPassword, String newPassword);
    void updateAvatar(User user, String avatarUrl);
    User updateProfile(User user, Map<String, String> profileData);

    List<StudentDTO> getAllStudents();
    StudentDetailDTO getStudentDetails(Long id);
    boolean updateStudentStatus(Long id, String status);
    boolean deleteStudent(Long id);
    
    StudentDTO assignSupervisorToStudent(Long studentId, Long supervisorId);
    
    List<StudentDTO> getSupervisorStudents(Long supervisorId);

    List<User> getAllSupervisors();
} 